package com.geline.easytrans.annotation;

import java.lang.annotation.*;

/**
 * SQL属性翻译
 *  在Entity属性上添加 @TransSQL(value="动态查询SQL", defaultValue = "-1")
 *  在Entity属性上添加 @TransSQL(value="动态查询SQL")
 *  在Entity属性上添加 @TransSQL(sqlIdInMapper="mybatis.xml中定义的<sql id=xxx></sql>")
 *
 * @author: mengxin
 * @date: 2023/2/22 11:35
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD, ElementType.TYPE})
public @interface TransSQL {

    /**
     * 动态查询SQL
     * 支持动态条件 select id from table where 1=1 [and id=#{id}] [and name like '%#{name}%']
     * @return
     */
    String value() default "";

    //查询为null时，默认值
    String defaultValue() default "";

    //mybatis.xml <sql id="{statementId: 唯一key，可以放在任意Mapper.xml中}"></sql>
    String sqlIdInMapper() default "";

    //当满足条件时才执行SQL
    String condition() default "";
}
